package order;

import java.util.Map;

import pims.ProductRecord;
import sims.StockRecord;

public class OrderItem {
	private String order;
	private String product;
	private int price;
	private int quantity;
	private int stock;

	public static OrderItem validate(String product, String strPrice, String strQuantity) {
		OrderItem item = null;
		//	商品番号と数量は必須
		if (product != null && product.length()>0  &&
				strQuantity != null && strQuantity.length()>0) {
			try {
				//	商品の存在チェック
				ProductRecord prec = new ProductRecord();
				Map<String, String> pmap = prec.getInfo(product);
				if (pmap == null) {
					throw new RuntimeException("商品番号に誤りがあります。");
				}
				item = new OrderItem();
				item.product = product;
				//	数量の入力チェック
				item.quantity = Integer.parseInt(strQuantity);
				if (item.quantity <= 0) {
					item = null;
					throw new RuntimeException("数量に誤りがあります。");
				}
				//	単価の入力チェック
				if (strPrice == null || strPrice.length() == 0) {
					item.price = Integer.parseInt(pmap.get("price"));
				}
				else {
					item.price = Integer.parseInt(strPrice);
				}
				if (item.price < 0) {
					item = null;
					throw new RuntimeException("単価に誤りがあります。");
				}
			}
			catch (NumberFormatException e) {
			}
			catch (RuntimeException e) {
			}
		}
		return item;
	}

	public static String getName(String product) {
		String productName = "商品番号に誤りがあります。";
		//	商品番号と数量は必須
		if (product != null && product.length()>0) {
			//	商品の存在チェック
			ProductRecord prec = new ProductRecord();
			Map<String, String> pmap = prec.getInfo(product);
			if (pmap != null) {
				productName = pmap.get("name");
			}
		}
		return productName;
	}

	public static int getStock(String product) {
		StockRecord srec = new StockRecord();
		return srec.getInfo(product);
	}

	/**
	 * @return order
	 */
	public String getOrder() {
		return order;
	}
	/**
	 * @param order セットする order
	 */
	public void setOrder(String order) {
		this.order = order;
	}
	/**
	 * @return product
	 */
	public String getProduct() {
		return product;
	}
	/**
	 * @param product セットする product
	 */
	public void setProduct(String product) {
		this.product = product;
	}
	/**
	 * @return price
	 */
	public int getPrice() {
		return price;
	}
	/**
	 * @param price セットする price
	 */
	public void setPrice(int price) {
		this.price = price;
	}
	/**
	 * @return quantity
	 */
	public int getQuantity() {
		return quantity;
	}
	/**
	 * @param quantity セットする quantity
	 */
	public void setQuantity(int quantity) {
		this.quantity = quantity;
	}
	/**
	 * @return stock
	 */
	public int getStock() {
		return stock;
	}
	/**
	 * @param stock セットする stock
	 */
	public void setStock(int stock) {
		this.stock = stock;
	}
}
